package com.example.entity;

import com.example.common.OrderStatus;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Order implements Serializable {

    private Long id; // 订单编号，对应数据库中的 bigint 类型

    private String projectName; // 项目名称

    private String orderName; // 订单名称
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date expectedArrivalDate; // 期望到货时间

    private String supplier; // 供应商

    private String licensePlate; // 关联车牌号

    private String weighbridgeName; // 地磅名称
    @ApiModelProperty
    private OrderStatus orderStatus; // 订单状态
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createdAt; // 创建时间

    private String materialName; // 材料名称

    private String materialSpecification; // 材料规格

    private String materialUnits; // 材料单位

    private Integer materialShould; // 材料应收重量



    // 在实体类创建时自动设置创建时间
    @PrePersist
    protected void onCreate() {
        createdAt = new Date();
    }
}
